/* 添加商品里的批发价位的判断，例如没输入、后面的价格比前面的价格高，都提示， */

//根据标签和样式寻找DOM
function GetCT(className, parentElement, tagName){
	var elems = (parentElement||document.body).getElementsByTagName(tagName);
	var result=[];
	for (i=0; j=elems[i]; i++){
	  if ((' '+j.className+' ').indexOf(' '+className+' ')!=-1){
	   result.push(j);
	  }
	}
	return result;
}

var fun3=function(){return false;},fun4=function(){return false;},fun5=function(){return false;},
dvPrice,dvPreview,valueObj,txt2s,txt3s,errs,cdts,tip,ns,ps,us,
reg1=/^\d*(\.\d*)?$/,reg2=/^[1-9]+\d*$/,t0=t1=t3=t5=p0=p1=p2='';

(function() {
	dvPrice=document.getElementById('dialog_object_spec_editor');
	if(dvPrice){
		dvPreview=document.getElementById('dialog_object_spec_editor'),
		txt2s=GetCT('txt2',dvPrice,'input'),
		txt3s=GetCT('txt3',dvPrice,'input'),
		errs=GetCT('error',dvPrice,'div'),
		cdts=GetCT('cdt',dvPrice,'li'),
		tip=GetCT('tip',dvPreview,'li')[0],
		ns=GetCT('n',dvPreview,'span'),
		ps=GetCT('p',dvPreview,'span'),
		us=GetCT('unit',dvPreview,'span'),

		$(txt2s).bind("focus", function(){ this.style.color='';this.select(); });
		$(txt3s).bind("focus", function(){ this.style.color='';this.select(); });

		function fun1() {
			if(txt2s[0].value && txt2s[1].value && txt3s[0].value) {
				$(txt2s[3]).removeClass('disabled');
				$(txt3s[1]).removeClass('disabled');
				txt2s[3].readOnly=false;
				txt3s[1].readOnly=false;
				if(txt2s[2].value && txt2s[3].value && txt3s[1].value) {
					$(txt2s[5]).removeClass('disabled');
					$(txt3s[2]).removeClass('disabled');
					txt2s[5].readOnly=false;
					txt3s[2].readOnly=false;
				}
			} else {
				$(txt2s[3]).addClass('disabled');
				$(txt3s[1]).addClass('disabled');
				$(txt2s[5]).addClass('disabled');
				$(txt3s[2]).addClass('disabled');
				txt2s[3].readOnly=true;
				txt3s[1].readOnly=true;
				txt2s[5].readOnly=true;
				txt3s[2].readOnly=true;
			}
		}
		function fun2() {
			if(txt2s[2].value && txt2s[3].value && txt3s[1].value) {
				$(txt2s[5]).removeClass('disabled');
				$(txt3s[2]).removeClass('disabled');
				txt2s[5].readOnly=false;
				txt3s[2].readOnly=false;
			} else {
				$(txt2s[5]).addClass('disabled');
				$(txt3s[2]).addClass('disabled');
				txt2s[5].readOnly=true;
				txt3s[2].readOnly=true;
			}
		}
		$(txt2s[0]).bind("keyup", function(){
			if(this.value) {
				if(reg2.test(this.value)) {
					t0=this.value;
				} else
					this.value=t0;
			} else t0='';
			fun1();
		});
		$(txt2s[1]).bind("keyup", function(){
			if(this.value) {
				if(reg2.test(this.value)) {
					t1=this.value;
				} else
					this.value=t1;
			} else t1='';
			fun1();
		});
		$(txt3s[0]).bind("keyup", function(){
			if(this.value) {
				if(reg1.test(this.value)) {
					p0=this.value;
				} else
					this.value=p0;
			} else p0='';
			fun1();
		});
		$(txt2s[3]).bind("keyup", function(){
			if(this.value) {
				if(reg2.test(this.value)) {
					t3=this.value;
				} else
					this.value=t3;
			} else t3='';
			fun2();
		});
		$(txt3s[1]).bind("keyup", function(){
			if(this.value) {
				if(reg1.test(this.value)) {
					p1=this.value;
				} else
					this.value=p1;
			} else p1='';
			fun2();
		});
		$(txt2s[5]).bind("keyup", function(){
			if(this.value) {
				if(reg2.test(this.value)) {
					t5=this.value;
				} else
					this.value=t5;
			} else t5='';
		});
		$(txt3s[2]).bind("keyup", function(){
			if(this.value) {
				if(reg1.test(this.value)) {
					p2=this.value;
				} else
					this.value=p2;
			} else p2='';
		});
		//第一行blur事件
		//小额批发fun3
		fun3=function(skip) {

			$(errs).css('display','none');
			$(cdts).css('display','none');
			$(dvPreview).removeClass('active');
			if(txt2s[1].value && !txt2s[0].value) txt2s[0].value=t0=1;
			tip.style.display='block';
			if(txt2s[0].value && txt2s[1].value && txt2s[0].value*1>txt2s[1].value*1) {
				errs[0].innerHTML='数量必需后者大于前者，如50-60件。';
				txt2s[1].style.color='red';
				errs[0].style.display='block';
				tip.innerHTML='产品未设置价格区间，可以正常发布，但<em>买家无法在线下单</em>。';
				tip.style.display='block';
				$('input[ectype="save_spec"]').attr('disabled',true);
				return false;
			} else if(valueObj && reg2.test(valueObj.value) && valueObj.value*1<txt2s[0].value*1) {
				errs[0].innerHTML='起订量必须小于或等于供货总量。';
				txt2s[0].style.color='red';
				errs[0].style.display='block';
				$('input[ectype="save_spec"]').attr('disabled',true);
				return false;
			} else if (txt2s[0].value && txt2s[0].value*1>10000){
				errs[0].innerHTML='货品数量必须小于1000件。';
				txt2s[0].style.color='red';
				errs[0].style.display='block';
				$('input[ectype="save_spec"]').attr('disabled',true);
				return false;
			} else if (txt2s[1].value && txt2s[1].value*1>10000){
				errs[0].innerHTML='货品数量必须小于10000件。';
				txt2s[1].style.color='red';
				errs[0].style.display='block';
				$('input[ectype="save_spec"]').attr('disabled',true);
				return false;
			} else if( txt3s[0].value.length < 1 || ( txt3s[0].value && (txt3s[0].value*1<0.01 || txt3s[0].value*1>5000)) ) {
				errs[0].innerHTML='批发价格必须定在0.01-5000之间。';
				txt3s[0].style.color='red';
				errs[0].style.display='block';
				$('input[ectype="save_spec"]').attr('disabled',true);
				return false;
			} else {
				txt2s[0].style.color=txt2s[1].style.color=txt3s[0].style.color='';
				if(txt3s[0].value) {
					tip.style.display='none';
					ps[0].innerHTML=txt3s[0].value;
					us[0].style.display='';
					cdts[0].style.display='block';
					$(dvPreview).addClass('active');
					if(txt2s[0].value && txt2s[1].value) {
						ns[0].innerHTML=txt2s[0].value+'-'+txt2s[1].value;
						cdts[0].style.display='block';
						$(dvPreview).addClass('active');
						return fun4();
					} else if(txt2s[0].value)
						ns[0].innerHTML='≥'+txt2s[0].value;
					else if(txt2s[1].value)
						ns[0].innerHTML='≤'+txt2s[1].value;
					else {
						us[0].style.display='none';
						ns[0].innerHTML='价格';
						tip.innerHTML='产品未设置价格区间，可以正常发布，但<em>买家无法在线下单</em>。';
						tip.style.display='block';
						cdts[0].style.display='none';
						dvPreview.removeClass('active');
					}
				} else {
					tip.innerHTML='产品未设置价格区间，可以正常发布，但<em>买家无法在线下单</em>。';
					tip.style.display='block';
				}
				$('input[ectype="save_spec"]').attr('disabled',false);
				return true;
			}
		};
		//第二行blur事件
		fun4=function() {
			if(errs[0].style.display=='none') {
				errs[1].style.display=errs[2].style.display=cdts[1].style.display=cdts[2].style.display='none';
				if(valueObj && reg2.test(valueObj.value) && valueObj.value*1<txt2s[0].value*1) {
					errs[0].innerHTML='起订量必须小于或等于供货总量。';
					txt2s[0].style.color='red';
					errs[0].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				 } else if (!txt2s[3].readOnly && txt2s[2].value && txt2s[2].value*1>10000){
					errs[1].innerHTML='货品数量必须小于10000件。';
					txt2s[2].style.color='red';
					errs[1].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				 } else if (!txt2s[3].readOnly && txt2s[3].value && txt2s[3].value*1>10000){
					errs[1].innerHTML='货品数量必须小于10000件。';
					txt2s[3].style.color='red';
					errs[1].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				 } else if( !txt3s[1].readOnly && txt3s[1].value && (txt3s[1].value*1<0.01 || txt3s[1].value*1>5000) ) {
					errs[1].innerHTML='批发价格必须定在0.01-5000之间。';
					txt3s[1].style.color='red';
					errs[1].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				} else if(!txt2s[3].readOnly && txt2s[3].value && txt2s[2].value*1>txt2s[3].value*1) {
					errs[1].innerHTML='数量必需后者大于前者，如50-60件。';
					txt2s[3].style.color='red';
					errs[1].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				} else if(!txt3s[1].readOnly && txt3s[1].value && txt3s[0].value*1<=txt3s[1].value*1) {
					errs[1].innerHTML='批发价格必须下面价格小于上面价格。';
					txt3s[1].style.color='red';
					errs[1].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				} else {
					txt2s[2].style.color=txt2s[3].style.color=txt3s[1].style.color='';
					if(!txt3s[1].readOnly && txt3s[1].value) {
						ps[1].innerHTML=txt3s[1].value;
						if(txt2s[3].value) {
							ns[1].innerHTML=txt2s[2].value+'-'+txt2s[3].value;
							cdts[1].style.display='block';
							return fun5();
						} else
							ns[1].innerHTML='≥'+txt2s[2].value;
						cdts[1].style.display='block';
					}
					$('input[ectype="save_spec"]').attr('disabled',false);
					return true;
				}

			}else return true;
		};
		//第三行blur事件
		fun5=function() {
			if(errs[0].style.display=='none' && errs[1].style.display=='none') {
				errs[2].style.display=cdts[2].style.display='none';
				if(!txt2s[5].readOnly && txt2s[5].value && txt2s[4].value*1>txt2s[5].value*1) {
					errs[2].innerHTML='数量必需后者大于前者，如50-60件。';
					txt2s[5].style.color='red';
					errs[2].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				} else if (!txt2s[5].readOnly && txt2s[4].value && txt2s[4].value*1>10000){
					errs[2].innerHTML='货品数量必须小于10000件。';
					txt2s[4].style.color='red';
					errs[2].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				} else if (!txt2s[5].readOnly && txt2s[5].value && txt2s[5].value*1>10000){
					errs[2].innerHTML='货品数量必须小于10000件。';
					txt2s[5].style.color='red';
					errs[2].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				} else if( !txt3s[2].readOnly && txt3s[2].value && (txt3s[2].value*1<0.01 || txt3s[2].value*1>5000)) {
					errs[2].innerHTML='批发价格必须定在0.01-5000之间。';
					txt3s[2].style.color='red';
					errs[2].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				} else if(!txt3s[2].readOnly && txt3s[2].value && txt3s[1].value*1<=txt3s[2].value*1) {
					errs[2].innerHTML='批发价格必须下面价格小于上面价格。';
					txt3s[2].style.color='red';
					errs[2].style.display='block';
					$('input[ectype="save_spec"]').attr('disabled',true);
					return false;
				} else {
					txt2s[4].style.color=txt2s[5].style.color=txt3s[2].style.color='';
					if(!txt3s[2].readOnly && txt3s[2].value) {
						ps[2].innerHTML=txt3s[2].value;
						if(txt2s[5].value)
							ns[2].innerHTML=txt2s[4].value+'-'+txt2s[5].value;
						else
							ns[2].innerHTML='≥'+txt2s[4].value;
						cdts[2].style.display='block';
					}
					$('input[ectype="save_spec"]').attr('disabled',false);
					return true;
				}
			}else return true;
		};

		$(txt2s[0]).blur(function() {
			if(this.value) {
				if(reg2.test(this.value)) {
					t0=this.value;
				} else
					this.value=t0;
			} else {
				if(txt2s[1].value) this.value=t0=1;
				else t0='';
			}
			fun1();
			fun3();
		});
		$(txt2s[1]).blur(function() {
			if(this.value) {
				if(reg2.test(this.value)) {
					t1=this.value;
					if(!txt2s[0].value) {
						txt2s[0].value=1;
						t0='1';
					}
				} else
					this.value=t1;
			} else t1='';
			if(this.value) {
				txt2s[2].value=this.value*1+1;
			} else txt2s[2].value='';
			fun1();
			fun3();
		});
		$(txt3s[0]).blur(function() {
			if(this.value) {
				if(reg1.test(this.value)) {
					p0=this.value;
				} else
					this.value=p0;
			} else p0='';
			if(this.value) p0=this.value=(('0'+this.value)*1).toFixed(2);
			fun1();
			fun3();
		});
		$(txt2s[3]).blur(function() {
			if(this.value) {
				if(reg2.test(this.value)) {
					t3=this.value;
				} else
					this.value=t3;
			} else t3='';
			if(this.value) {
				txt2s[4].value=this.value*1+1;
			} else txt2s[4].value='';
			fun2();
			fun4();
		});
		$(txt3s[1]).blur(function() {
			if(this.value) {
				if(reg1.test(this.value)) {
					p1=this.value;
				} else
					this.value=p1;
			} else p1='';
			if(this.value) p1=this.value=(('0'+this.value)*1).toFixed(2);
			fun2();
			fun4();
		});
		$(txt2s[5]).blur(function() {
			if(this.value) {
				if(reg2.test(this.value)) {
					t5=this.value;
				} else
					this.value=t5;
			} else t5='';
			fun5();
		});
		$(txt3s[2]).blur(function() {
			if(this.value) {
				if(reg1.test(this.value)) {
					p2=this.value;
				} else
					this.value=p2;
			} else p2='';
			if(this.value) p2=this.value=(('0'+this.value)*1).toFixed(2);
			fun5();
		});
		fun1();
		fun3(true);
	}
})();
